# TinySSH

Guía de configuración de un servidor SSH minimalista en Slackware.

## Cliente

Generar las llaves de autenticación Ed25519:

    ssh-keygen -t ed25519 -f id_ed25519

## Servidor

Detener y deshabilitar el init script de OpenSSH (si es necesario):

    sudo /etc/rc.d/rc.sshd stop
    sudo chmod 644 /etc/rc.d/rc.sshd

Crear las llaves de cifrado para tinyssh:

    sudo tinysshd-makekey /etc/tinyssh/sshkeydir

Agregar el servicio de tinyssh en el archivo de configuración de `initd` en `/etc/inetd.conf`:

    ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir

Habilitar y ejecutar el init script de inetd para montar el servidor SSH:

    sudo chmod 755 /etc/rc.d/rc.inetd
    sudo /etc/rc.d/rc.inetd start

Permitir conexiones entrantes para tinyssh desde el firewall:

    sudo ufw allow in on wlan0 to 192.168.1.10 port 22 proto tcp comment 'TinySSH (SSH)'

Agregar la llave pública del cliente en `${HOME}/.ssh/authorized_keys`:

    mkdir "${HOME}/.ssh"
    chmod 700 "${HOME}/.ssh"
    cat id_ed25519.pub >> "${HOME}/.ssh/authorized_keys"

## Cliente

Conectarse al servidor ssh con la llave privada:

    ssh -i id_ed25519 usuario@192.168.1.10

## Referencias

* [TinySSH - A minimalistic SSH server which implements only a subset of SSHv2 features.](https://github.com/janmojzis/tinyssh)
* [Install tinyssh.](https://tinyssh.org/install.html)
* [tinysshd manpage - Tiny SSH daemon.](https://manpages.ubuntu.com/manpages/jammy/en/man8/tinysshd.8.html)
* [tinysshd-makekey manpage - Create TinySSH key-directory.](https://manpages.ubuntu.com/manpages/jammy/en/man1/tinysshd-makekey.1.html)
* [El manual del Administrador de Debian - El superservidor inetd.](https://www.debian.org/doc/manuals/debian-handbook/sect.inetd.es.html)
* [inetd manpage - Internet super-server.](https://manpages.ubuntu.com/manpages/jammy/en/man8/inetd.8.html)
* [ufw manpage - Program for managing a netfilter firewall.](https://manpages.ubuntu.com/manpages/jammy/en/man8/ufw.8.html)
